package com.bestcem.xm.award.entity.pojo;

import com.bestcem.xm.award.enums.DeliverSourceEnum;
import lombok.*;

import java.util.Date;

/**
 * 抽奖中奖记录表
 * @author sh.pei <sh.pei@idiaoyan.com>
 * @version v1.0
 * @date 2021/6/28 10:45
 */
@ToString(callSuper = true)
@Getter
@Setter
public class AwardRecordDO {

    /**
     * _id
     */
    private String id;

    /**
     * 奖励id
     */
    private String awardId;

    /**
     * 奖励信息
     */
    private Award award;

    /**
     * 抽奖手机号
     */
    private String phone;

    /**
     * 中奖状态检查
     */
    private Integer status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 中奖相关信息
     */
    private Win win;

    /**
     * 收货手机号
     */
    private String contactPhone;

    /**
     * 中奖人姓名
     */
    private String name;

    /**
     * 收货地址
     */
    private Address address;

    @NoArgsConstructor
    @AllArgsConstructor
    @ToString
    @Setter
    @Getter
    public static class Award {

        /**
         * 奖励id
         */
        private String awardId;

        /**
         * 投放id
         */
        private String deliverId;

        /**
         * 投放来源 {@link DeliverSourceEnum}
         */
        private Integer deliverSource;

        /**
         * 投放名称
         */
        private String deliverName;

        /**
         * 问卷id
         */
        private String surveyId;

        /**
         * 问卷唯一标识
         */
        private Long surveySeq;

        /**
         * 页面唯一标识
         */
        private String awardPage;

        /**
         * 抽奖手机号
         */
        private String phone;

        /**
         * 签名
         */
        private String sig;
    }

    @NoArgsConstructor
    @AllArgsConstructor
    @ToString
    @Setter
    @Getter
    public static class Win {

        /**
         * 奖项名称
         */
        private String name;

        /**
         * 奖项等级
         */
        private Integer level;

        /**
         * 兑奖码
         */
        private String code;

        /**
         * 中奖状态
         */
        private Integer status;

        /**
         * 奖项发放方式
         */
        private Integer method;

        /**
         * 奖项等级
         */
        private String levelStr;

        /**
         * 中奖时间
         */
        private Date winTime;
    }

    @NoArgsConstructor
    @AllArgsConstructor
    @ToString
    @Setter
    @Getter
    public static class Address {

        /**
         * 省
         */
        private String province;

        /**
         * 市
         */
        private String city;

        /**
         * 详细地址
         */
        private String more;
    }

}
